package org.zebra.logging.event;

import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 操作日志事件
 *
 * @author zhang
 */
@Data
public class OperLogEvent implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 日志主键
     */
    private Long Id;

    /**
     * 用户ID
     */
    private String userId;

    /**
     * 用户账号
     */
    private String userName;

    /**
     * 模块名称
     */
    private String moduleName;

    /**
     * 详情
     */
    private String title;

    /**
     * 业务类型（0其它 1新增 2修改 3删除 4授权 5导出 6导入 7登录 8退出登录）
     */
    private Integer businessType;

    /**
     * 方法名称
     */
    private String methodName;

    /**
     * 请求方式
     */
    private String requestMethod;

    /**
     * 操作人员姓名
     */
    private String nickName;

    /**
     * 部门名称
     */
    private String deptName;

    /**
     * 请求url
     */
    private String operUrl;

    /**
     * 操作地址
     */
    private String operIp;

    /**
     * 请求参数
     */
    private String operParam;

    /**
     * 返回参数
     */
    private String jsonResult;

    /**
     * 操作状态（0正常 1异常）
     */
    private Integer status;

    /**
     * 提示消息
     */
    private String msg;

    /**
     * 操作时间
     */
    private Date createTime;

    private List<AuditData> auditDataList = new ArrayList<>();

    @Data
    public static class AuditData {

        private Long Id;

        private Long logId;

        private String tableName;

        private String changeData;

        private String title;

        private Integer type;

        private Date createTime;
    }
}
